package com.ljx.lambda.lambda02;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

/**
 * @author LJX
 * @Description: 当lambda表达式中通过类名引用了已经存在的静态方法时，
 * 而且仅有一条语句，那么我们可以适应静态方法引用来实现
 * @Date: 2022/11/4 9:52
 * @Version 1.0
 */
public class StaticTest01 {
	public static void main(String[] args) {
		// 将下面的集合进行排序
		ArrayList<Integer> arrayList = new ArrayList<>();
		arrayList.add(3);
		arrayList.add(1);
		arrayList.add(56);
		arrayList.add(33);
		arrayList.add(22);

		Comparator<Integer> comparator1=(o1,o2)->{
			return Integer.compare(o1,o2);
		};
		/**
		 * 有时候我们使用lambda表达式仅仅是为了调用一些方法，
		 * 此时我们可以用lambda表达式的另一种表现形式来更简洁的实现他
		 * 使用静态方法引用
		 */
		Comparator<Integer> comparator2=Integer::compare;
		Collections.sort(arrayList,comparator1);
		System.out.println(arrayList);
	}
}
